Bibliotecas

library(dplyr)

Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union

Leitura dos dados

Omissos de cada coluna

colSums(is.na(dados))
     PV1SCIE      PV1READ      PV1MATH      SOCONPA      BODYIMA     GCAWAREP     INTCULTP      ATTIMMP     JOYREADP      PRESUPP 
        5377        41320         5377       534956       536507       612004       612004       612004       520815       519825 
    PASCHPOL     PQSCHOOL      EMOSUPP      CURSUPP     FLFAMILY     FLSCHOOL     FLCONICT     FLCONFIN     INFOJOB2     INFOJOB1 
      520641       519999       520772       519740       612004       612004       612004       612004       390359       390359 
     INFOCAR   ICTOUTSIDE     ICTCLASS      SOIAICT       AUTICT      COMPICT       INTICT       USESCH      HOMESCH       ENTUSE 
      382412       283481       275263       310331       306205       299011       292761       298901       288643       271459 
BEINGBULLIED       BELONG      DISCRIM     GLOBMIND       AWACOM      RESPECT      COGFLEX     PERSPECT      INTCULT       ATTIMM 
      147660        77867       612004       612004       612004       612004       612004       612004       612004       612004 
     GCAWARE    GCSELFEFF     MASTGOAL   RESILIENCE         SWBP        EUDMO      GFOFAIL     WORKMAST      COMPETE     ATTLNACT 
      612004       612004        71452        74444       124918       105309        69899        66094        55755        46324 
     PERCOOP      PERCOMP     PISADIFF   SCREADDIFF   SCREADCOMP      JOYREAD     TEACHINT   ADAPTIVITY     STIMREAD      EMOSUPS 
      147207       132669        59460        73950        70810        38233        60699        44478        43247       129289 
     PERFEED       DIRINS     TEACHSUP     DISCLIMA       ICTRES       WEALTH       HEDRES     CULTPOSS      HOMEPOS       ICTSCH 
       64409        57856        60365        32662        15676        13737        17705        23446        11400       256547 
     ICTHOME         ESCS       STUBMI       CHANGE     SCCHANGE     FCFMLRTY        TMINS        SMINS        LMINS        MMINS 
      249475        14379       540769       381656       379993       612004       222268       148178       143593       143986 
         AGE        GRADE   ST061Q01NA   ST060Q01NA   ST059Q03TA   ST059Q02TA   ST059Q01TA   ST016Q01NA        IMMIG        HISEI 
           0         3019       118181       144404       136286       131373       130630       118802        32568        47647 
       BFMJ2        BMMJ1       HISCED       FISCED       MISCED       ISCEDL    ST001D01T       REPEAT        PROGN        OCOD3 
      110980        84576        17657        32575        21433         6869            0        36532            0            0 
       OCOD2        OCOD1    ST004D01T          CNT 
           0            0            2            0 
# A coluna dos Paises não tem nulos
sum(is.na(dados$CNT))
[1] 0

Países Existentes na base de dados

unique(dados$CNT)
<labelled<character>[24]>: Country code 3-character
 [1] ALB ARE ARG AUS AUT BEL BGR BIH BLR BRA BRN CAN CHE CHL COL CRI CZE DEU DNK DOM ESP EST FIN FRA

Labels:

Visualização das características de cada um dos países

Irlanda

Características da Irlanda

describe(Irlanda)
Warning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to min; returning InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -InfWarning: no non-missing arguments to max; returning -Inf

Limpeza dos valores omissos

dim(IrlandaSemiLimpa)
[1] 5577   86
dim(IrlandaLimpa)
[1] 1133   86
Irlanda

Irlanda
describe(Irlanda)

Correlações das colunas

#Correlation matrix
round(correlation, 3)
             PV1SCIE PV1READ PV1MATH SOCONPA BODYIMA JOYREADP PRESUPP PASCHPOL PQSCHOOL EMOSUPP CURSUPP INFOJOB2 INFOJOB1 INFOCAR
PV1SCIE        1.000   0.847   0.797  -0.051  -0.036    0.191  -0.016   -0.007    0.073   0.030  -0.009    0.011   -0.098   0.027
PV1READ        0.847   1.000   0.776   0.022  -0.074    0.249   0.076   -0.019    0.064   0.066   0.073   -0.044   -0.089   0.040
PV1MATH        0.797   0.776   1.000  -0.006   0.048    0.168   0.055    0.023    0.123   0.029   0.016   -0.014   -0.081  -0.015
SOCONPA       -0.051   0.022  -0.006   1.000   0.150    0.078   0.069    0.054    0.051   0.174   0.116   -0.040    0.069   0.010
BODYIMA       -0.036  -0.074   0.048   0.150   1.000    0.004   0.016    0.011   -0.001   0.020  -0.018   -0.001    0.109   0.038
JOYREADP       0.191   0.249   0.168   0.078   0.004    1.000   0.211    0.016    0.063   0.184   0.246    0.015   -0.065   0.017
PRESUPP       -0.016   0.076   0.055   0.069   0.016    0.211   1.000    0.116    0.096   0.193   0.330    0.033    0.008   0.043
PASCHPOL      -0.007  -0.019   0.023   0.054   0.011    0.016   0.116    1.000    0.724   0.100   0.152   -0.042    0.079   0.062
PQSCHOOL       0.073   0.064   0.123   0.051  -0.001    0.063   0.096    0.724    1.000   0.180   0.145   -0.046    0.054   0.041
EMOSUPP        0.030   0.066   0.029   0.174   0.020    0.184   0.193    0.100    0.180   1.000   0.252   -0.001   -0.006   0.047
CURSUPP       -0.009   0.073   0.016   0.116  -0.018    0.246   0.330    0.152    0.145   0.252   1.000    0.032   -0.048   0.015
INFOJOB2       0.011  -0.044  -0.014  -0.040  -0.001    0.015   0.033   -0.042   -0.046  -0.001   0.032    1.000   -0.164   0.132
             ICTOUTSIDE ICTCLASS SOIAICT AUTICT COMPICT INTICT USESCH HOMESCH ENTUSE BEINGBULLIED BELONG MASTGOAL RESILIENCE   SWBP  EUDMO
PV1SCIE           0.026    0.023  -0.069  0.176   0.136  0.027 -0.125  -0.142 -0.120        0.039 -0.077    0.089      0.077 -0.096 -0.194
PV1READ           0.038    0.080  -0.111  0.146   0.121  0.047 -0.115  -0.147 -0.094       -0.045 -0.020    0.138      0.065 -0.076 -0.180
PV1MATH          -0.014    0.018  -0.005  0.138   0.116  0.035 -0.132  -0.156 -0.081       -0.011 -0.014    0.143      0.125 -0.074 -0.134
SOCONPA          -0.034    0.025   0.002 -0.027   0.010 -0.028 -0.034   0.035  0.027       -0.178  0.159    0.153      0.203  0.283  0.216
BODYIMA          -0.030   -0.024   0.169  0.072   0.080  0.025  0.025   0.021  0.092       -0.146  0.347    0.021      0.338  0.290  0.323
JOYREADP          0.020    0.018  -0.048 -0.007   0.031 -0.054 -0.028  -0.048 -0.014        0.001 -0.012    0.008     -0.038 -0.036 -0.067
PRESUPP           0.014    0.008  -0.043 -0.044  -0.003 -0.008  0.006  -0.004  0.044       -0.014  0.018    0.002      0.019  0.042  0.028
PASCHPOL          0.031    0.001   0.076  0.019   0.026  0.035  0.074   0.097  0.052       -0.055  0.083    0.053      0.075  0.038  0.070
PQSCHOOL          0.012    0.001   0.048  0.028   0.008  0.025  0.051   0.102 -0.019       -0.046  0.034    0.122      0.081  0.016  0.047
EMOSUPP          -0.016    0.043  -0.040 -0.068  -0.009 -0.011  0.006   0.014 -0.061       -0.044  0.026    0.102      0.035  0.098  0.057
CURSUPP           0.050   -0.001   0.018  0.014   0.033 -0.024 -0.008   0.054  0.018       -0.006  0.047    0.167      0.081  0.069  0.053
INFOJOB2          0.080    0.062   0.141  0.117   0.111  0.056  0.050   0.062  0.140        0.104 -0.012    0.043      0.148  0.009  0.066
             GFOFAIL WORKMAST COMPETE ATTLNACT PERCOOP PERCOMP PISADIFF SCREADDIFF SCREADCOMP JOYREAD TEACHINT ADAPTIVITY STIMREAD EMOSUPS
PV1SCIE        0.018    0.020   0.057   -0.007  -0.044  -0.069   -0.467     -0.351      0.441   0.376    0.052     -0.005    0.030  -0.012
PV1READ        0.068    0.064   0.031    0.062  -0.002  -0.011   -0.468     -0.399      0.490   0.461    0.112      0.039    0.076   0.059
PV1MATH       -0.044    0.065   0.085    0.041   0.020  -0.040   -0.418     -0.306      0.362   0.289    0.025      0.015    0.026  -0.024
SOCONPA       -0.112    0.164  -0.025    0.143   0.210   0.053   -0.026     -0.037      0.063   0.067    0.102      0.185    0.137   0.513
BODYIMA       -0.383    0.095   0.174   -0.038   0.147   0.024   -0.070     -0.068      0.062  -0.122   -0.011      0.102    0.011   0.143
JOYREADP       0.025    0.012   0.002    0.031   0.023   0.008   -0.112     -0.155      0.175   0.216    0.022      0.028    0.040   0.083
PRESUPP       -0.036    0.020   0.061    0.026   0.048   0.080   -0.038     -0.054      0.090   0.067    0.042      0.029    0.062   0.033
PASCHPOL      -0.007    0.079  -0.019    0.027   0.134  -0.010   -0.023     -0.007      0.020   0.023    0.083      0.086    0.107   0.039
PQSCHOOL       0.007    0.101  -0.025    0.055   0.153   0.025   -0.048     -0.022      0.043   0.074    0.156      0.113    0.155   0.058
EMOSUPP        0.026    0.103   0.032    0.114   0.018   0.028   -0.058     -0.060      0.068   0.087    0.073      0.044    0.059   0.254
CURSUPP       -0.010    0.090   0.019    0.108   0.040   0.043   -0.083     -0.125      0.167   0.279    0.067      0.047    0.054   0.172
INFOJOB2       0.002    0.061   0.126    0.013   0.024   0.125   -0.040     -0.035      0.012   0.015   -0.049     -0.018   -0.005  -0.012
             PERFEED DIRINS TEACHSUP DISCLIMA ICTRES WEALTH HEDRES CULTPOSS HOMEPOS ICTSCH ICTHOME   ESCS STUBMI CHANGE SCCHANGE  TMINS
PV1SCIE        0.043 -0.112   -0.046    0.029  0.132  0.013  0.033    0.198   0.174 -0.165  -0.055  0.240 -0.073 -0.098   -0.038 -0.051
PV1READ        0.059 -0.093   -0.008    0.059  0.099 -0.004  0.046    0.253   0.190 -0.158  -0.097  0.244 -0.054 -0.144   -0.083 -0.068
PV1MATH        0.026 -0.085   -0.055    0.012  0.150  0.052  0.065    0.213   0.207 -0.119  -0.011  0.257 -0.099 -0.120   -0.061 -0.057
SOCONPA        0.051  0.111    0.174    0.046  0.059  0.091  0.182    0.124   0.157  0.046   0.102  0.107  0.029 -0.051   -0.067  0.031
BODYIMA        0.005  0.102    0.072   -0.039  0.055  0.060  0.111   -0.010   0.059  0.057   0.114  0.059 -0.120 -0.007   -0.026  0.061
JOYREADP       0.044 -0.019   -0.004    0.006  0.088  0.060  0.100    0.229   0.220  0.009   0.079  0.250  0.036 -0.056   -0.062 -0.061
PRESUPP        0.006 -0.010    0.007    0.003  0.075  0.067  0.113    0.105   0.137 -0.032   0.047  0.121  0.023  0.013    0.006 -0.031
PASCHPOL       0.070  0.123    0.136    0.111  0.020 -0.022  0.077   -0.022   0.005  0.160  -0.012 -0.038  0.066 -0.021   -0.022  0.010
PQSCHOOL       0.085  0.118    0.160    0.141  0.022 -0.025  0.061    0.004   0.020  0.129  -0.002  0.023  0.039 -0.017   -0.016  0.011
EMOSUPP        0.037  0.009    0.049   -0.006  0.026  0.026  0.106    0.117   0.103 -0.005   0.021  0.133  0.051 -0.028   -0.047  0.037
CURSUPP        0.071  0.035    0.057    0.053  0.055  0.034  0.168    0.225   0.190 -0.001   0.025  0.198  0.051  0.004    0.005 -0.020
INFOJOB2       0.040  0.027   -0.062   -0.062  0.087  0.060  0.070    0.102   0.105  0.034   0.082  0.058 -0.025  0.076    0.068  0.045
              SMINS  LMINS  MMINS    AGE  GRADE ST061Q01NA ST060Q01NA ST059Q03TA ST059Q02TA ST059Q01TA ST016Q01NA  IMMIG  HISEI  BFMJ2
PV1SCIE       0.102 -0.016 -0.040  0.056  0.014      0.018     -0.057      0.093     -0.055     -0.030     -0.048  0.021  0.227  0.224
PV1READ       0.074 -0.054 -0.066  0.070  0.017      0.009     -0.065      0.069     -0.075     -0.059     -0.044 -0.063  0.219  0.239
PV1MATH       0.109 -0.006 -0.009  0.049 -0.018      0.018     -0.064      0.102     -0.019     -0.014      0.026 -0.021  0.226  0.222
SOCONPA      -0.084 -0.073 -0.106  0.038 -0.038     -0.033      0.043     -0.068     -0.071     -0.045      0.350 -0.124  0.065  0.059
BODYIMA       0.082  0.011  0.007  0.018  0.029     -0.004      0.050      0.084      0.014      0.014      0.394  0.003  0.027  0.018
JOYREADP     -0.015 -0.062 -0.082 -0.020 -0.067     -0.055     -0.024      0.008     -0.040     -0.021     -0.019 -0.124  0.190  0.127
PRESUPP      -0.001 -0.018 -0.029  0.025  0.024     -0.005     -0.024      0.002     -0.019     -0.007      0.025 -0.090  0.066  0.065
PASCHPOL     -0.029 -0.061 -0.044  0.009  0.015      0.026     -0.012     -0.033     -0.050     -0.068      0.056  0.062 -0.052 -0.024
PQSCHOOL     -0.006 -0.050 -0.065 -0.009 -0.025     -0.008      0.015      0.000     -0.051     -0.038      0.067  0.025  0.023  0.023
EMOSUPP      -0.020 -0.014 -0.026  0.014 -0.024      0.017      0.010     -0.022     -0.033     -0.023      0.061 -0.118  0.106  0.059
CURSUPP      -0.023  0.018  0.024 -0.040 -0.072      0.036     -0.037     -0.031      0.010      0.003      0.032  0.041  0.122  0.097
INFOJOB2      0.046  0.079  0.064  0.041  0.027      0.047      0.002      0.028      0.032      0.043     -0.033  0.051 -0.005  0.027
              BMMJ1 HISCED FISCED MISCED ISCEDL ST001D01T REPEAT ST004D01T
PV1SCIE       0.188  0.126  0.185  0.141  0.041     0.014 -0.032    -0.016
PV1READ       0.184  0.135  0.155  0.157  0.042     0.017 -0.054    -0.176
PV1MATH       0.185  0.142  0.196  0.148 -0.003    -0.018 -0.037     0.049
SOCONPA       0.033 -0.001 -0.007 -0.018 -0.009    -0.038  0.006    -0.048
BODYIMA       0.017  0.063  0.066  0.039  0.014     0.029 -0.002     0.336
JOYREADP      0.220  0.172  0.142  0.195 -0.040    -0.067 -0.050     0.005
PRESUPP       0.063  0.068  0.046  0.077  0.015     0.024  0.023    -0.021
PASCHPOL     -0.015 -0.041 -0.016 -0.049  0.039     0.015 -0.044     0.029
PQSCHOOL      0.062  0.003  0.022 -0.003 -0.003    -0.025  0.002    -0.002
EMOSUPP       0.113  0.099  0.077  0.066 -0.012    -0.024  0.013    -0.102
CURSUPP       0.132  0.141  0.130  0.155 -0.074    -0.072  0.035    -0.079
INFOJOB2     -0.012  0.041  0.046  0.024  0.031     0.027  0.023     0.113
 [ reached getOption("max.print") -- omitted 69 rows ]
cortest.bartlett(correlation)
Warning: n not specified, 100 used
$chisq
[1] 6537.174

$p.value
[1] 7.324155e-225

$df
[1] 3240

PCA

pc9r$loadings

Loadings:
             RC1    RC4    RC2    RC5    RC3    RC7    RC6    RC9    RC8   
PV1SCIE       0.201  0.802                      -0.117                     
PV1READ       0.181  0.820                      -0.131                0.129
PV1MATH       0.205  0.747                                                 
SOCONPA                                   0.120  0.403 -0.141  0.146  0.338
BODYIMA                                          0.681               -0.177
JOYREADP      0.252  0.213                                     0.102  0.174
PRESUPP       0.113                                                   0.199
PASCHPOL                                  0.248                       0.156
PQSCHOOL                                  0.286                       0.208
EMOSUPP       0.113                                    -0.105         0.358
CURSUPP       0.204                                                   0.385
INFOJOB2                                                0.323              
INFOJOB1            -0.128  0.647 -0.127  0.108  0.144                     
INFOCAR                     0.641 -0.108                0.214         0.166
ICTOUTSIDE                                0.114 -0.169  0.342         0.147
ICTCLASS                          -0.180                0.250  0.108  0.113
SOIAICT                                          0.184  0.608        -0.136
AUTICT               0.293                              0.592        -0.175
COMPICT              0.268                              0.604              
INTICT               0.126                              0.489              
USESCH              -0.238  0.345 -0.164                0.386         0.149
HOMESCH             -0.304  0.133         0.147         0.390  0.139  0.269
ENTUSE              -0.102                              0.596  0.138       
BEINGBULLIED                             -0.124 -0.338  0.295              
BELONG                                           0.597                     
MASTGOAL             0.146                0.152  0.160  0.165         0.576
RESILIENCE           0.165                       0.585  0.258         0.236
SWBP                                             0.586                0.230
EUDMO               -0.158                0.102  0.587  0.114         0.224
GFOFAIL                                         -0.547                0.271
WORKMAST             0.135                       0.279  0.205         0.497
COMPETE              0.157                       0.221  0.323              
ATTLNACT                                                              0.483
PERCOOP                                   0.254  0.317                0.247
PERCOMP                                                 0.293         0.238
PISADIFF            -0.691                                                 
SCREADDIFF          -0.623                      -0.106               -0.121
SCREADCOMP           0.666                0.113         0.150         0.233
JOYREAD       0.160  0.471                0.149 -0.219                0.441
TEACHINT                                  0.725                       0.136
ADAPTIVITY                                0.741  0.177                     
STIMREAD                                  0.766                       0.120
EMOSUPS                                   0.126  0.338         0.108  0.472
PERFEED                                   0.606         0.125              
DIRINS                                    0.726  0.126                     
TEACHSUP                                  0.781  0.132                     
DISCLIMA                    0.114  0.102  0.442        -0.197              
ICTRES        0.252                                     0.179  0.754       
WEALTH        0.186                                     0.126  0.804       
HEDRES        0.228                       0.144         0.156  0.512  0.244
CULTPOSS      0.413  0.197                              0.110  0.348  0.287
HOMEPOS       0.411  0.117                              0.154  0.781  0.218
ICTSCH              -0.285                0.154         0.184  0.134       
ICTHOME       0.155 -0.158                              0.141  0.624       
ESCS          0.861  0.122                                     0.413  0.111
STUBMI                            -0.112               -0.107         0.163
CHANGE        0.189 -0.236                              0.353 -0.342       
SCCHANGE      0.206 -0.162                              0.338 -0.387       
TMINS                              0.297                                   
SMINS                0.184         0.693                             -0.103
LMINS        -0.109        -0.172  0.721                             -0.141
MMINS                      -0.249  0.703                             -0.160
AGE                         0.680 -0.131                                   
GRADE                       0.928                                          
ST061Q01NA           0.130        -0.263  0.122         0.108  0.102 -0.228
ST060Q01NA          -0.160         0.429                              0.199
ST059Q03TA           0.139         0.733                                   
ST059Q02TA                 -0.221  0.840                                   
ST059Q01TA                 -0.141  0.832                                   
ST016Q01NA                                       0.721                0.102
IMMIG                              0.142        -0.112  0.333 -0.222       
HISEI         0.793  0.113                             -0.111  0.107       
BFMJ2         0.624  0.132                                     0.122       
BMMJ1         0.659                                    -0.105              
HISCED        0.816                                                        
FISCED        0.706                                                        
MISCED        0.740                                                        
ISCEDL                      0.939 -0.149                                   
ST001D01T                   0.928                                          
REPEAT                     -0.174                       0.121 -0.179       
ST004D01T                  -0.107                0.331  0.179        -0.508

                RC1   RC4   RC2   RC5   RC3   RC7   RC6   RC9   RC8
SS loadings    4.89 4.438 4.373 4.050 3.928 3.822 3.565 3.389 3.190
Proportion Var 0.06 0.055 0.054 0.050 0.048 0.047 0.044 0.042 0.039
Cumulative Var 0.06 0.115 0.169 0.219 0.268 0.315 0.359 0.401 0.440
LS0tDQp0aXRsZTogIlByb2pldG8iDQphdXRob3I6ICJncnVwbyA2c2lnbWEiDQpkYXRlOiAiMjAyMy0wNS0xMCINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMjIyBCaWJsaW90ZWNhcw0KYGBge3J9DQpsaWJyYXJ5KHBzeWNoKQ0KbGlicmFyeShjb3JycGxvdCkNCmxpYnJhcnkoaGF2ZW4pDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShtYWdyaXR0cikNCmBgYA0KDQojIExlaXR1cmEgZG9zIGRhZG9zDQpgYGB7cn0NCmRhZG9zIDwtIHJlYWRSRFMoaGVyZSgiZGF0YSIsICJTVFVfUVFRXzUucmRzIikpDQpkYWRvcw0KYGBgDQoNCiMjIE9taXNzb3MgZGUgY2FkYSBjb2x1bmENCmBgYHtyfQ0KY29sU3Vtcyhpcy5uYShkYWRvcykpDQpgYGANCg0KYGBge3J9DQojIEEgY29sdW5hIGRvcyBQYWlzZXMgbsOjbyB0ZW0gbnVsb3MNCnN1bShpcy5uYShkYWRvcyRDTlQpKQ0KYGBgDQoNCiMjIFBhw61zZXMgRXhpc3RlbnRlcyBuYSBiYXNlIGRlIGRhZG9zDQpgYGB7cn0NCnVuaXF1ZShkYWRvcyRDTlQpDQpgYGANCg0KIyMjIFZpc3VhbGl6YcOnw6NvIGRhcyBjYXJhY3RlcsOtc3RpY2FzIGRlIGNhZGEgdW0gZG9zIHBhw61zZXMNCmBgYHtyfQ0KZGFkb3MgJT4lDQogIG11dGF0ZShOdW1OdWxvcyA9IHJvd1N1bXMoaXMubmEoLikpKSAlPiUNCiAgZ3JvdXBfYnkoQ05UKSAlPiUNCiAgc3VtbWFyaXplKFRvdGFsTnVsb3MgPSBzdW0oTnVtTnVsb3MpLA0KICAgICAgICAgICAgTnVtTGluaGFzID0gbigpLA0KICAgICAgICAgICAgUGVyY2VudE51bG9zID0gKFRvdGFsTnVsb3MgLyAoTnVtTGluaGFzICogbmNvbChkYWRvcykpKSAqIDEwMCwNCiAgICAgICAgICAgIE1lYW5TY2llbmNlID0gbWVhbihQVjFTQ0lFLCBuYS5ybSA9IFRSVUUpLA0KICAgICAgICAgICAgTWVhblJlYWQgPSBtZWFuKFBWMVJFQUQsIG5hLnJtID0gVFJVRSksDQogICAgICAgICAgICBNZWFuTWF0aCA9IG1lYW4oUFYxTUFUSCwgbmEucm0gPSBUUlVFKSwNCiAgICAgICAgICAgIC5ncm91cHMgPSAiZHJvcCIpICU+JSANCiAgYXJyYW5nZShkZXNjKE51bUxpbmhhcykpDQpgYGANCg0KIyBJcmxhbmRhDQpgYGB7cn0NCklybGFuZGEgPC0gZGFkb3MgJT4lIGZpbHRlcihDTlQgPT0gIklSTCIpDQpJcmxhbmRhDQpgYGANCg0KIyMgQ2FyYWN0ZXLDrXN0aWNhcyBkYSBJcmxhbmRhDQpgYGB7cn0NCmRpbShJcmxhbmRhKQ0KZGVzY3JpYmUoSXJsYW5kYSkNCmBgYA0KIyMgTGltcGV6YSBkb3MgdmFsb3JlcyBvbWlzc29zDQpgYGB7cn0NCklybGFuZGFTZW1pTGltcGEgPC0gSXJsYW5kYSAlPiUgc2VsZWN0KHdoZXJlKH4gIWFsbChpcy5uYSguKSkpKQ0KZGltKElybGFuZGFTZW1pTGltcGEpDQpgYGANCg0KYGBge3J9DQpJcmxhbmRhTGltcGEgPC0gbmEub21pdChJcmxhbmRhU2VtaUxpbXBhKQ0KZGltKElybGFuZGFMaW1wYSkNCmBgYA0KDQpgYGB7cn0NCklybGFuZGEgPC0gSXJsYW5kYUxpbXBhICU+JSBzZWxlY3RfaWYoaXMubnVtZXJpYykNCnJtKElybGFuZGFMaW1wYSkNCnJtKElybGFuZGFTZW1pTGltcGEpDQpgYGANCg0KYGBge3J9DQpJcmxhbmRhDQpkZXNjcmliZShJcmxhbmRhKQ0KYGBgDQoNCiMjIENvcnJlbGHDp8O1ZXMgZGFzIGNvbHVuYXMNCmBgYHtyfQ0KI0NvcnJlbGF0aW9uIHBsb3Qgd2l0aCBjb2xvcnMgKHRvbyBtYW55IGF0dHJpYnV0ZXMpDQpjb3JyZWxhdGlvbiA8LSBjb3IoSXJsYW5kYSkNCmNvcnJwbG90KGNvcnJlbGF0aW9uKQ0KDQojQ29ycmVsYXRpb24gbWF0cml4DQpyb3VuZChjb3JyZWxhdGlvbiwgMykNCmBgYA0KDQpgYGB7cn0NCiNLTU8gbWVhc3VyZSANCktNTyhjb3JyZWxhdGlvbikNCg0KY29ydGVzdC5iYXJ0bGV0dChjb3JyZWxhdGlvbikNCmBgYA0KDQoNCiMjIFBDQQ0KYGBge3J9DQojU2NhbGxpbmcgb2YgYXR0cmlidXRlcyBkYXRhDQpkYXRhX3NjYWxlZCA8LSBzY2FsZShJcmxhbmRhLCBjZW50ZXIgPSBUUlVFLCBzY2FsZSA9IFRSVUUpDQoNCiNBc3N1bWUgdGhlIG51bWJlciBvZiBjb21wb25lbnRzID0gMzQNCnBjMzQgPC0gcHJpbmNpcGFsKGRhdGFfc2NhbGVkLCBuZmFjdG9ycz0zNCwgcm90YXRlPSJub25lIikNCnBjMzQkbG9hZGluZ3MNCg0KI1NjcmVlcGxvdCAtIEZpbmQgdGhlIGVsYm93DQpwbG90KHBjMzQkdmFsdWVzLCB0eXBlID0gImIiLCBtYWluID0gIlNjcmVlIHBsb3QgZm9yIEZJRkExOSBkYXRhc2V0IiwNCiAgICAgeGxhYiA9ICJOdW1iZXIgb2YgUEMiLCB5bGFiID0gIkVpZ2VudmFsdWUiKSANCg0KI0VpZ2VudmFsdWVzIC0gVmFyaWFuY2VzIG9mIHRoZSBwcmluY2lwYWwgY29tcG9uZW50cyANCnJvdW5kKHBjMzQkdmFsdWVzLDMpDQoNCiNVc2luZyBLYWlzZXIgY3JpdGVyaW9uICg5IGNvbXBvbmVudCBzb2x1dGlvbikNCiM1IGNvbXBvbmVudCBzb2x1dGlvbiB3aXRob3V0IHJvdGF0aW9uDQpwYzkgPC0gcHJpbmNpcGFsKGRhdGFfc2NhbGVkLCBuZmFjdG9ycz05LCByb3RhdGU9Im5vbmUiLCBzY29yZXM9VFJVRSkNCg0KI2NvbW11bmFsaXR5IG9mIDUgY29tcG9uZW50IHNvbHV0aW9uDQpyb3VuZChwYzkkY29tbXVuYWxpdHksMykNCg0KIzUgY29tcG9uZW50IHNvbHV0aW9uIHdpdGggcm90YXRpb24gKHZhcmltYXgpDQpwYzlyIDwtIHByaW5jaXBhbChkYXRhX3NjYWxlZCwgbmZhY3RvcnM9OSwgcm90YXRlPSJ2YXJpbWF4IikNCnBjOXIkbG9hZGluZ3MNCmBgYA==